1. Technical Field
This invention relates to a speech decoder suite to be used for digital speech communication.
2. Background Art
In a low bit rate speech coding algorithm, a coding algorithm, which is based on a CELP (Code Excited Linear Prediction Coding) such as LD-GELP (ITU-T/G. 728), VSELP and SPI-CELP (RCR/STD27-C) is widely used. Although it is not limited to such a CELP series speech coding algorithm, in order to carry out a coding correctly in a coding algorithm having internal states in an encoder and in a decoder, it is essential that the internal state of the encoder is exactly coincident with that of the decoder. Here, imagining, for example, an IIR filter of FIG. 6, the terms "internal state" corresponds to y(t-1), . . . , y(t-1) of the output signal sequences till last time. In other words, when a decoding is currently carried out utilizing a decoded result in the past as in the speech coding algorithm, the decoded result in the past corresponds to the above-mentioned "internal state". An adaptive codebook is its representative example.
However, the decoder sometimes carries out a decoding with damaged codes due to code errors which occur on a transmission line. In that case, it occurs that the internal state of the encoder is not coincident with that of the decoder. When such a non-coincidence of the internal states occurs, a decoding cannot be carried out in a correct manner even if a correct code is used, and distortion of the decoded speech continues for a while even after the recovery of the code errors. Thus, a large degradation of quality results.
A speech decoder is known as a device capable of lessening the degradation of quality, which is employed in a PDC (Personal Digital Cellular telecommunication system) full rate algorithm as shown in FIG. 7. In FIG. 7, reference numeral 1 denotes an input code sequence process unit which comprises an input code sequence process part 11 and input code sequence storage part 12. Reference numeral 2 denotes a decoding process unit which comprises a decoding process part 21, an internal state process part 22, and an internal state storage part 23. Reference numeral 3 denotes an error detection unit for detecting the errors of a received input code sequence In(i) (where i represents time and takes a value of i=0, 1, 2, . . . ) utilizing a CRC (Cyclic Redundancy Code).
The error detection unit 3 outputs an error detection signal E to the input code sequence process part 11 and the decoding process part 21 when it detects errors in the input code sequence In(i).
The input code sequence process part 11 removes redundancy bits from the input code sequence In(i) and outputs the same in the form of a code sequence C(i) to the decoding process part 21 when no errors are detected in the input code sequence In(i) and no error detection signal (E) is output from the error detection unit 3. This code sequence C(i) is also output to the code sequence storage part 12 and stored therein.
Based on internal state information So(i) supplied from the internal state process part 22, the decoding process part 21 decodes the code sequence C(i), outputs a decoded speech SP(i), and outputs the internal state information Si(i) to the internal state process part 22 at the time point when the decoding process is finished. The internal state process part 22 reads the internal state information So(i) stored in the internal state storage part 23, outputs the same to the decoding process part 21, prepares internal state information So(i+1) after the completion of the routine in the decoding process part 21, based on the internal state information Si(i) supplied from the decoding process part 213 and stores the internal state information So(i+1) in the internal state storage part 23. By doing this, the contents stored in the internal state storage part 23 are updated to So(i+1) from So(i) when the decoding process is finished at time i.
It is supposed that errors are found in the input code sequence In(t) at time t and the detection signal E is output from the error detection unit 3. The input code sequence process part 11 replaces a code A by a code B, the code A corresponding to an LSP (Line Spectrum Pair, i.e., parameter of a synthesis or inverse filter showing a spectrum envelope of the speech) and an LAG (i.e., delay quantity of the adaptive codebook showing the pitch cycle of the speech) contained in the code sequence C(t) from which the redundancy bits are already removed, the code B corresponding to the code sequence C(t-1) stored in the input code sequence storage part 12. The input code sequence process part 11 outputs a code sequence C'(t) after the replacement. The contents of the input code sequence storage part 12 at that time remain the same as code sequence C(t-1) and are not updated. The decoding process part 21 carries out the above decoding process and updates the internal state utilizing the code sequence C'(t) supplied from the input code sequence process part 11.
The LSP and LAG as objects for replacement have a high correlation with respect to time and are not abruptly changed with the passage of time. Accordingly, the values of the adjacent LSP and LAG computed for each predetermined section are close to each other. Consequently, the distortion of the decoded speech SP(t) is lessened when the decoding process is carried out based on the correctly received code immediately before the detection of errors rather than when the decoding process is carried out based on the code containing errors. As a consequence, the degradation of quality can be reduced at the time point when the errors occur.
However, when the LSP and LAG are replaced in a conventional manner, it is seldom that the code sequence C'(t) after the replacement is coincident with the code sequence C(t) which is presumed to contain no errors. Accordingly, an occurrence of code errors makes it even more difficult for the internal state information So(i+1) stored in the internal state storage unit 23 to coincide with the internal state of the encoder. Accordingly, even in the event that no errors are detected from, for example, time t+s onward and a correct code sequence C(t+s) can be obtained, the decoded speech SP(t+s) tends to be degraded due to non-coincidence of the internal states. Especially, since the correlation between the LSP and LAG is reduced as the time s during which the code errors occur is increased, the degree of non-coincidence of the internal states is further increased and the degradation of the decoded speech SP(t+s) is increased, too.